﻿using System;
using System.ServiceModel;
using Ayatta.Contract.Domain;
using System.Collections.Generic;

namespace Ayatta.Contract
{
    [ServiceContract(Namespace = ServiceContract.Namespace)]
    public interface IInfrastructureService : IService
    {

        #region Area

        [OperationContract]
        bool AreaCreate(Area o);

        [OperationContract]
        bool AreaUpdate(Area o);

        [OperationContract]
        bool AreaDelete(string id);

        [OperationContract]
        Area AreaGet(string id);

        [OperationContract]
        IList<Area> AreaList(string parentId= null);

        [OperationContract]
        PagedList<Area> AreaPagedList(int page = 1, int size = 50, string parentId = null, int? country = null);

        #endregion

        #region LogisticsCompany

        [OperationContract]
        bool LogisticsCompanyCreate(LogisticsCompany o);

        [OperationContract]
        bool LogisticsCompanyUpdate(LogisticsCompany o);

        [OperationContract]
        bool LogisticsCompanyDelete(int id);

        [OperationContract]
        LogisticsCompany LogisticsCompanyGet(int id);

        [OperationContract]
        IList<LogisticsCompany> LogisticsCompanyList();

        [OperationContract]
        PagedList<LogisticsCompany> LogisticsCompanyPagedList(int page = 1, int size = 20);

        #endregion
    
        [OperationContract]
        Question QuestionGet(int id);
    }
}
